草庐IT

Android JSONObject 与 GSON

全部标签

java - 如何使用 GSON 序列化 map 的 map ?

我想使用GSON将下面的示例类序列化为JSON。importcom.google.gson.Gson;importcom.google.gson.GsonBuilder;importjava.util.LinkedHashMap;publicclassExample{privateLinkedHashMapGeneral;privatestaticfinalStringVERSION="Version";privatestaticfinalStringRANGE="Range";privatestaticfinalStringSTART_TIME="Start_Time";privat

java - Gson 中的 DateFormat 模式 "yyyy-MM-dd' T'HH :mm:ss. SSS'Z'"

我有如下两个字段(注意第一个字段有毫秒部分):{"updateTime":"2011-11-02T02:50:12.208Z","deliverTime":"1899-12-31T16:00:00Z"}我想用Gson将Json字符串反序列化为一个对象,所以得到一个Gson实例:GsonBuildergb=newGsonBuilder();gb.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");gson=gb.create();第一个字段被反序列化为Java日期类型:2011-11-0202:50:12.208(看起来忽略了时区部分-“Z”,这是

java - GSON : custom object deserialization

好的,所以我编辑了问题,因为它不够清楚。编辑2:更新了JSON文件。我在Android应用程序中使用GSON,我需要解析来自服务器的JSON文件,这些文件有点太复杂了。我不想让我的对象结构太重,所以我想简化内容:所以我的对象结构不会是JSON文件的结构。例如,如果在JSON中我有这个:{"object1":{"attribute1":"test1","attribute40":"test40","user":{"id":1,"name":"foo"},"example":{"total":10,"list":[{"tag":"tag1","name":"objectname1","po

java - 使用gson反序列化json数组

从thisquestion继续。我在反序列化以下json数组时遇到问题(对大小感到抱歉):"geometry":{"type":"Polygon","coordinates":[[[771230.894373,4422896.962001],[804804.852796,4451159.130080],[876828.563339,4417873.954498],[959794.979827,4430944.287708],[910992.515063,4372980.866944],[932488.308736,4357684.778349],[918573.372386,41156

java - Google 的 GSON 是否使用构造函数?

我在做我们的项目时想知道一些事情。Google的GSONAPI是否使用您要反序列化的JSON中的构造函数?例如:我有一个JSON字符串,我想将其转换为Employee对象。Employee对象有一个构造函数,它对参数进行一些检查(例如,它的ID>0)。我们使用下面的代码反序列化JSON。但是在将JSON反序列化为Employee时是否会调用此构造函数?GSON链接:https://github.com/google/gson编辑:所以在尝试断点后我发现构造函数没有被调用。无论如何,有人知道调用它的方法吗?/***TheGSONclasstohelpyoucreateandde-seri

java - 使用 GSON 解析多种类型的数组

我希望使用GSON解析以下json:[["hello",1,[2]],["world",3,[2]]]所以,这是1个数组,包含2个数组。2个内部数组本身就是数组,由String、int、array类型组成。我不确定如何使用Java类来为具有3种不同类型(字符串、整数、数组)的数组建模。我开始于://Stringjsonjustcontainstheaforementionedjsonstring.ArrayList>data=newArrayList>();TypearrayListType=newTypeToken>>(){}.getType();data=gson.fromJson

java - GSON 需要 BEGIN_ARRAY 但实际是 BEGIN_OBJECT

当我在列表中只收到一个项目时出现此错误。我在服务器端RESTWeb服务中使用Jersey,只有当List返回一个元素并且它有0个元素时,我才会得到错误,我得到java.lang.NullPointerException但是当它有多个时,它会完美地工作,这就是我的做法:@GET@Path("getproject")@Produces(MediaType.APPLICATION_JSON)publicListgetPagedProjects(@QueryParam("offset")intoffset,@QueryParam("limit")intlimit,@QueryParam("se

java - GSON:如何从 Json 获取不区分大小写的元素?

当JSON对象包含传递给方法的jsonKey时,下面显示的代码运行良好。我想知道......是否有办法将值分配给不区分大小写的键表示?示例:publicStringgetOutputEventDescription(JsonElementoutputEvent)throwsParserException{returnretrieveString(outputEvent,DESCRIPTION);}无论DESCRIPTION定义为“Description”、“description”还是“DeScRipTIOn”都应该有效protectedStringretrieveString(Jso

java - 使用自定义类型适配器添加对象,gson 中的 jsonwriter

gson是一个很棒的库-它运行良好。有时我有自定义要求,并且可以制作和注册TypeAdapters和TypeAdaptorFactories-这也很有效。然而,让我感到困惑的是如何委托(delegate)回json序列化......大多数时候我需要这个用于集合,但为了说明这一点-假设我有一个pair类,gson显然会愉快地序列化,但是出于某种原因,我需要自己的自定义序列化程序。嗯...如果我的一对是publicclassPair{publicfinalObjectFirst;publicfinalObjectSecond;publicPair(Objectfirst,Objectsec

java - 如何配置 gson 以排除 0 个整数值

我有一个包含很多整数字段的Java类,当我想将它们序列化为json字符串时,因为它们中的一些可能没有值,因此在序列化所有整数后,所有整数的值都为零!如果它们没有任何值,我想配置gson不要序列化它们。例如我有这个类:classExample{Stringtitle="something";intid=22;intuserId;}默认情况下gson给我这个结果:{"title":"something","id":22,"userId":0}但我不希望userId在其值为0时被序列化。所以json应该是:{"title":"something","id":22}默认情况下,对于对象,gso